home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-03 / qbasicpg.zip / DEMO2.BAS < prev    next >
BASIC Source File  |  1987-09-16  |  2KB  |  77 lines

  1. DEFINT A-Z
  2. ' QB2 Version of Sound Effects Demo Program
  3. '   (works under most other BASIC compilers)
  4.  
  5. ' Sound effects menu
  6. WHILE Q$ <> "Q"
  7.     CLS
  8.     PRINT "Sound effects": PRINT
  9.     COLOR 15, 0: PRINT "  B"; : COLOR 7, 0: PRINT "ouncing"
  10.     COLOR 15, 0: PRINT "  F"; : COLOR 7, 0: PRINT "alling"
  11.     COLOR 15, 0: PRINT "  K"; : COLOR 7, 0: PRINT "laxon"
  12.     COLOR 15, 0: PRINT "  S"; : COLOR 7, 0: PRINT "iren"
  13.     COLOR 15, 0: PRINT "  Q"; : COLOR 7, 0: PRINT "uit"
  14.     PRINT : PRINT "Select: ";
  15.  
  16.     ' Get valid key
  17.     Q$ = " "
  18.     WHILE INSTR("BFKSQbfksq", Q$) = 0
  19.         Q$ = INPUT$(1)
  20.     WEND
  21.  
  22.     ' Take action based on key
  23.     CLS
  24.     IF Q$ = "B" OR Q$ = "b" THEN
  25.         PRINT "Bouncing . . . "
  26.         CALL Bounce(32767, 246)
  27.     ELSEIF Q$ = "F" OR Q$ = "f" THEN
  28.         PRINT "Falling . . . "
  29.         CALL Fall(2000, 550, 500)
  30.     ELSEIF Q$ = "S" OR Q$ = "s" THEN
  31.         PRINT "Wailing . . ."
  32.         PRINT " . . . press any key to end."
  33.         CALL Siren(780, 650)
  34.     ELSEIF Q$ = "K" OR Q$ = "k" THEN
  35.         PRINT "Oscillating . . ."
  36.         PRINT " . . . press any key to end."
  37.         CALL Klaxon(987, 329)
  38.     ELSEIF Q$ = "q" THEN
  39.         Q$ = "Q"
  40.     END IF
  41. WEND
  42. END
  43.  
  44. ' Loop two sounds down at decreasing time intervals
  45. SUB Bounce (Hi, Low) STATIC
  46.     FOR Count = 60 TO 1 STEP -2
  47.         SOUND Low - Count / 2, Count / 20
  48.         SOUND Hi, Count / 15
  49.     NEXT
  50. END SUB
  51.  
  52. ' Loop down from a high sound to a low sound
  53. SUB Fall (Hi, Low, Del) STATIC
  54.     FOR Count = Hi TO Low STEP -10
  55.         SOUND Count, Del / Count
  56.     NEXT
  57. END SUB
  58.  
  59. ' Alternate two sounds until a key is pressed
  60. SUB Klaxon (Hi, Low) STATIC
  61.     WHILE INKEY$ = ""
  62.         SOUND Hi, 5
  63.         SOUND Low, 5
  64.     WEND
  65. END SUB
  66.  
  67. ' Loop a sound from low to high to low
  68. SUB Siren (Hi, Rng) STATIC
  69.     WHILE INKEY$ = ""
  70.         FOR Count = Rng TO -Rng STEP -4
  71.             SOUND Hi - ABS(Count), .3
  72.             Count = Count - 2 / Rng
  73.         NEXT
  74.     WEND
  75. END SUB
  76.  
  77.